//解决通用函数有微小不同点的办法
//方法一：适合简单类型，直接添加标识符，根据标识符来判断部分代码是否需要执行
//代码写死，通用性低
function changeStyle(elements, className, isActive) {
    elements.each(function() {
        let that = this;
        $(that).click(function() {
            elements.each(function() {
                $(this).removeClass(className);
            })
            $(that).addClass(className);
            if (isActive) {
                $(that).parent().siblings().find('a').removeClass('active')
            }
        })
    })
}
//方法二：
//使用回掉函数
//判断是否传入回调函数来调用回调函数
//如果毁掉函数中要使用外层函数的某些变量，那么直接传递给回调函数，在实际书写回调的时候需添加形参
function changeStyle1(elements, className, callback) {
    elements.each(function() {
        let that = this;
        $(that).click(function() {
            elements.each(function() {
                $(this).removeClass(className);
            })
            $(that).addClass(className);
            if (callback) {
                callback($(that))
            }
        })
    })
}

//hh即调用时添加的形参
changeStyle1(sideMenu, 'active', function(hh) {
    hh.parent().siblings().find('a').removeClass('active')
})